import json
import os
import sys

def main():
    # 【核心修改】接收主程序哈希作为参数（从打包脚本传入）
    if len(sys.argv) < 2:
        print("❌ 缺少主程序SHA256参数")
        sys.exit(1)
    main_exe_sha256 = sys.argv[1]

    # 读取版本号
    with open('version.txt', 'r', encoding='utf-8') as f:
        version = f.read().strip()

    # 定义文件路径
    release_dir = 'release'
    update_zip = f'DataCollector_v{version}.zip'
    zip_path = os.path.join(release_dir, update_zip)
    output_json = os.path.join(release_dir, 'latest.json')

    # 读取更新日志（若存在）
    changelog = f'• 自动构建于 {os.environ.get("PUB_DATE", "未知日期")}'
    if os.path.exists('changelog.txt'):
        with open('changelog.txt', 'r', encoding='utf-8') as f:
            content = f.read().strip()
            if content:
                changelog = content

    # 【核心修改】构建JSON数据（明确存储主程序哈希）
    data = {
        'version': version,
        'url': f'http://115.120.195.74/{update_zip}',
        'changelog': changelog,
        'pub_date': os.environ.get("PUB_DATE", "1970-01-01"),
        'min_version': version,
        'exe_sha256': main_exe_sha256,  # 明确标记为主程序哈希
        'arch': 'x64'  # 根据实际构建的架构填写（x64/x86）
    }

    # 写入 latest.json
    with open(output_json, 'w', encoding='utf-8') as out:
        json.dump(data, out, ensure_ascii=False, indent=2)

    print(f"✅ latest.json 已生成：{output_json}")


if __name__ == '__main__':
    main()